﻿using System;
using System.Collections.Generic;
using System.Text;
using Pahan.McuFusion.Common;

namespace Pahan.McuFusion.Spi
{
    /// <summary>
    /// This interface must be implemented by classes used for SPI bit-bang hardware interfaces.
    /// </summary>
    public interface ISpiInterface : IHardwareInterface
    {
        /// <summary>
        /// Gets or sets the SCK signal.
        /// </summary>
        bool Sck
        {
            get;
            set;
        }

        /// <summary>
        /// Gets the MISO signal.
        /// </summary>
        bool Miso
        {
            get;
        }

        /// <summary>
        /// Gets or sets MOSI signal.
        /// </summary>
        bool Mosi
        {
            get;
            set;
        }

        /// <summary>
        /// Gets or sets RESET signal.
        /// </summary>
        bool Reset
        {
            get;
            set;
        }

        /// <summary>
        /// Gets or sets the value indicating whether the SCK signal must be inverted.
        /// </summary>
        bool InvertSck
        {
            get;
            set;
        }

        /// <summary>
        /// Gets or sets the value indicating whether the MISO signal must be inverted.
        /// </summary>
        bool InvertMiso
        {
            get;
            set;
        }

        /// <summary>
        /// Gets or sets the value indicating whether the MOSI signal must be inverted.
        /// </summary>
        bool InvertMosi
        {
            get;
            set;
        }

        /// <summary>
        /// Gets or sets the value indicating whether the RESET signal must be inverted.
        /// </summary>
        bool InvertReset
        {
            get;
            set;
        }
    }
}
